package jam.network.message;

import jam.model.*;
import jam.network.*;
import jam.network.message.*;

import java.util.*;

//
// =============================================================================
//

public class ClientRequestUserInfo extends ClientCommand {
	protected static final String KEYWORD = "CR_USERINFO";
	private String username;
	
	//
	// =========================================================================
	//
	
	@Override
	public void process(ClientController controller) {
		ClientModel client = controller.getModel();
		boolean success = false;
		LinkedList<String> userInfo = new LinkedList<String>();
		if(client.isLoggedIn()) {
			userInfo = User.getUserInfo(username);
			if(userInfo != null)
			{
				success = true;
				
				// hack for online/offline
				if (controller.getNetworkController().getModel().isLoggedIn(username))
					userInfo.add("TRUE");
				else
					userInfo.add("FALSE");
			}
		}
		controller.send(new ServerResponse(this,success,userInfo));
	}
	
	//
    // =========================================================================
    //
    
    @Override
    protected String getKeyword() { 
        return ClientRequestUserInfo.KEYWORD; 
    }
    
	//
	// =========================================================================
	//
	
	protected ClientRequestUserInfo(int transactionId, Scanner args) {
		super(transactionId);
		
		// Get arguments.
		this.username = args.next();
	}
}
